package com.ctshk.rpc.order.goods.req;

import com.ctshk.common.model.PageReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 商品訂單分頁列表-入參
 * </p>
 *
 * @author 姜斌文
 * @since 2021-04-23
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value="OrderPageListReq对象", description="商品訂單分頁列表")
public class OrderPageListReq extends PageReq implements Serializable{

    private static final long serialVersionUID = 1L;

    // @NotBlank(message = "配送方式不能为空")
    @ApiModelProperty(value = "配送方式：用户下单时选择-1：物流配送(订单收货人信息表); 2：门店自提（订单提货人信息表）")
    private Integer deliveryMode;

    @ApiModelProperty(value = "自提分社:提货门店id")
    private Long shipperStoreId;

    @ApiModelProperty(value = "订单编号")
    private String orderNumber;

    @ApiModelProperty(value = "订单状态:1：待付款; 2：待发货; 3：待收货; 4：已完成; 5：已取消")
    private Integer orderStatus;

    @ApiModelProperty(value = "核销状态:1：待核销; 2：已核销")
    private Integer writeOffStatus;

    @ApiModelProperty(value = "創建時間：即下單時間")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "订单来源类型:1：商城；2：小店；3：门店")
    private Integer sourceType;

    @ApiModelProperty(value = "订单来源id：商城，小店，门店 （存取id)")
    private Long sourceId;

    @ApiModelProperty(value = "订单来源名称")
    private String sourceName;

    @ApiModelProperty(value = "订单来源渠道：1:pc; 2:h5; 3:app")
    private Integer sourceChannel;

    @ApiModelProperty(value = "销售用户id")
    private Long saleUserId;

    @ApiModelProperty(value = "销售用户名称")
    private String saleUserName;

    @ApiModelProperty(value = "下单用户id")
    private Long userId;

    @ApiModelProperty(value = "下单用户名称")
    private String userName;

    @ApiModelProperty(value = "收货人或手机号码")
    private String consigneeOrPhone;

    @ApiModelProperty(value = "提货人或手机号码")
    private String shipperOrPhone;

    @ApiModelProperty(value = "菜单ID", hidden = true)
    private Long menuId;

    @ApiModelProperty(value = "用户ID列表", hidden = true)
    private String userIds;

    @ApiModelProperty(value = "非超级管理员", hidden = true)
    private Integer isNotAdmin;

}
